package ace.module.product.core.impl.manager;

import ace.cmp.data.spring.data.jdbc.querydsl.rsql.core.model.SaveContext;
import ace.cmp.data.spring.data.jdbc.querydsl.rsql.core.model.SaveListContext;
import ace.module.common.core.impl.manager.EntityOfAppManager;
import ace.module.product.api.model.dto.PmsCommonGalleryDto;
import ace.module.product.core.impl.dao.entity.PmsCommonGallery;
import java.util.List;

/**
 * 商品应用通用相册 spring data jdbc querydsl rsql manager.
 *
 * @author Caspar
 */
public interface PmsCommonGalleryManager extends EntityOfAppManager<PmsCommonGallery, Long, PmsCommonGalleryDto> {

  PmsCommonGallery assembleProductMainImage(Long pmsAppId, Long productId, String imgUrl);

  List<PmsCommonGallery> assembleProductGalleries(Long pmsAppId, Long productId, List<String> imgUrls);

  SaveContext<PmsCommonGallery> assembleProductMainImageSaveContext(Long pmsAppId, Long productId, String imgUrl);

  SaveListContext<PmsCommonGallery> assembleProductGalleriesSaveListContext(Long pmsAppId, Long productId, List<String> imgUrls);

  SaveContext<PmsCommonGallery> assembleProductSkuMainImageSaveContext(Long pmsAppId, Long productId, Long skuId, String imgUrl);

}